/*
 * @(#)BracketClear.java    0.2 04/01/2009
 */
package org.miao.catstorage;

import java.util.regex.Pattern;

/**
 * 括号清理器
 * <p>该清理器用于清理语句中多余的括号及括号间多余的空白</p>
 * @author Miao
 * @version 0.2
 * @since 0.2
 */
public class BracketClear implements Clear {

    /**
     * 清理废括号的正则表达式
     */
    private Pattern bracketRegex = Pattern.compile("\\(+\\s*\\)+");
    /**
     * 清理左括号间空白的正则表达式
     */
    private Pattern leftBracketBlankRegex = Pattern.compile("(\\()\\s+");
    /**
     * 清理右括号间空白的正则表达式
     */
    private Pattern rightBracketBlankRegex = Pattern.compile("\\s+(\\))");

    public String clear(String statement) {
        String step1 = leftBracketBlankRegex.matcher(statement).replaceAll("$1");
        String setp2 = rightBracketBlankRegex.matcher(step1).replaceAll("$1");
        return bracketRegex.matcher(setp2).replaceAll(" ");
    }
}
